package com.ourteam.product.model.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 IRKT 2017
 * Auto Generate Date : 2017-11-17 11:00:56
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductModelDomainDAOQueryBean extends BaseQueryBean {
    public ProductModelDomainDAOQueryBean() {
        super();
    }

    public ProductModelDomainDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductModelDomainDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.Id, "id");
        }
    }

    public void addDomainCodeSelectProperty() {
        addDomainCodeSelectProperty("domainCode");
    }

    public void addDomainCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.DomainCode, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.DomainCode, "domainCode");
        }
    }

    public void addDomainNameSelectProperty() {
        addDomainNameSelectProperty("domainName");
    }

    public void addDomainNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.DomainName, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.DomainName, "domainName");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.Remarks, "remarks");
        }
    }

    public void addCreatorNameSelectProperty() {
        addCreatorNameSelectProperty("creatorName");
    }

    public void addCreatorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.CreatorName, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.CreatorName, "creatorName");
        }
    }

    public void addCreateTimeSelectProperty() {
        addCreateTimeSelectProperty("createTime");
    }

    public void addCreateTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.CreateTime, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.CreateTime, "createTime");
        }
    }

    public void addLastModifierNameSelectProperty() {
        addLastModifierNameSelectProperty("lastModifierName");
    }

    public void addLastModifierNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.LastModifierName, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.LastModifierName,
                "lastModifierName");
        }
    }

    public void addLastModifyTimeSelectProperty() {
        addLastModifyTimeSelectProperty("lastModifyTime");
    }

    public void addLastModifyTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.LastModifyTime, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.LastModifyTime,
                "lastModifyTime");
        }
    }

    public void addSubmitterIdSelectProperty() {
        addSubmitterIdSelectProperty("submitterId");
    }

    public void addSubmitterIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelDomainDAO.SubmitterId, aAlias);
        } else {
            addSelectProperty(IProductModelDomainDAO.SubmitterId, "submitterId");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addDomainCodeSelectProperty();

        addDomainNameSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addCreatorNameSelectProperty();

        addCreateTimeSelectProperty();

        addLastModifierNameSelectProperty();

        addLastModifyTimeSelectProperty();

        addSubmitterIdSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductModelDomainDAOQueryBean> {
        protected Criteria(ProductModelDomainDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductModelDomainDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductModelDomainDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.Id + " is not null AND " +
                IProductModelDomainDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.Id + " is null OR " +
                IProductModelDomainDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " is null OR " +
                IProductModelDomainDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Id + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductModelDomainDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelDomainDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelDomainDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelDomainDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andDomainCodeIsNull() {
            addCriterion(IProductModelDomainDAO.DomainCode + " is null");

            return this;
        }

        public Criteria andDomainCodeIsNotNull() {
            addCriterion(IProductModelDomainDAO.DomainCode + " is not null");

            return this;
        }

        public Criteria andDomainCodeIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.DomainCode +
                " is not null AND " + IProductModelDomainDAO.DomainCode +
                " <> ''");

            return this;
        }

        public Criteria andDomainCodeIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.DomainCode +
                " is null OR " + IProductModelDomainDAO.DomainCode + " = '')");

            return this;
        }

        public Criteria andDomainCodeEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " = ", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " <>", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " is null OR " +
                IProductModelDomainDAO.DomainCode + " <>", value, "domainCode");

            return this;
        }

        public Criteria andDomainCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " >", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " >=", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeLessThan(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " <", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainCode + " <=", value,
                "domainCode");

            return this;
        }

        public Criteria andDomainCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.DomainCode + " like",
                buffer.toString(), "domainCode");

            return this;
        }

        public Criteria andDomainCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.DomainCode + " not like",
                buffer.toString(), "domainCode");

            return this;
        }

        public Criteria andDomainCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andDomainCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.DomainCode + " in", values,
                    "domainCode");

                return this;
            }
        }

        public Criteria andDomainCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andDomainCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.DomainCode + " not in",
                    values, "domainCode");

                return this;
            }
        }

        public Criteria andDomainCodeIn(String[] values) {
            if (values.length == 1) {
                return andDomainCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.DomainCode + " in",
                    Arrays.asList(values), "domainCode");

                return this;
            }
        }

        public Criteria andDomainCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andDomainCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.DomainCode + " not in",
                    Arrays.asList(values), "domainCode");

                return this;
            }
        }

        public Criteria andDomainCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainCodeBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.DomainCode + " between",
                value1, value2, "domainCode");

            return this;
        }

        public Criteria andDomainCodeNotBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.DomainCode + " not between",
                value1, value2, "domainCode");

            return this;
        }

        public Criteria andDomainNameIsNull() {
            addCriterion(IProductModelDomainDAO.DomainName + " is null");

            return this;
        }

        public Criteria andDomainNameIsNotNull() {
            addCriterion(IProductModelDomainDAO.DomainName + " is not null");

            return this;
        }

        public Criteria andDomainNameIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.DomainName +
                " is not null AND " + IProductModelDomainDAO.DomainName +
                " <> ''");

            return this;
        }

        public Criteria andDomainNameIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.DomainName +
                " is null OR " + IProductModelDomainDAO.DomainName + " = '')");

            return this;
        }

        public Criteria andDomainNameEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " = ", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " <>", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " is null OR " +
                IProductModelDomainDAO.DomainName + " <>", value, "domainName");

            return this;
        }

        public Criteria andDomainNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " >", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " >=", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameLessThan(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " <", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.DomainName + " <=", value,
                "domainName");

            return this;
        }

        public Criteria andDomainNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.DomainName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andDomainNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.DomainName + " like",
                buffer.toString(), "domainName");

            return this;
        }

        public Criteria andDomainNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.DomainName + " not like",
                buffer.toString(), "domainName");

            return this;
        }

        public Criteria andDomainNameIn(List<String> values) {
            if (values.size() == 1) {
                return andDomainNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.DomainName + " in", values,
                    "domainName");

                return this;
            }
        }

        public Criteria andDomainNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andDomainNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.DomainName + " not in",
                    values, "domainName");

                return this;
            }
        }

        public Criteria andDomainNameIn(String[] values) {
            if (values.length == 1) {
                return andDomainNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.DomainName + " in",
                    Arrays.asList(values), "domainName");

                return this;
            }
        }

        public Criteria andDomainNameNotIn(String[] values) {
            if (values.length == 1) {
                return andDomainNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.DomainName + " not in",
                    Arrays.asList(values), "domainName");

                return this;
            }
        }

        public Criteria andDomainNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.DomainName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andDomainNameBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.DomainName + " between",
                value1, value2, "domainName");

            return this;
        }

        public Criteria andDomainNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.DomainName + " not between",
                value1, value2, "domainName");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductModelDomainDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductModelDomainDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.Status + " is not null AND " +
                IProductModelDomainDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.Status + " is null OR " +
                IProductModelDomainDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Status + " = ", value, "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.Status + " is null OR " +
                IProductModelDomainDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Status + " >=", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductModelDomainDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Status + " <=", value, "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Status + " not in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductModelDomainDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductModelDomainDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.Remarks + " is not null AND " +
                IProductModelDomainDAO.Remarks + " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.Remarks + " is null OR " +
                IProductModelDomainDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " is null OR " +
                IProductModelDomainDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " >", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " <", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.Remarks + " between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andCreatorNameIsNull() {
            addCriterion(IProductModelDomainDAO.CreatorName + " is null");

            return this;
        }

        public Criteria andCreatorNameIsNotNull() {
            addCriterion(IProductModelDomainDAO.CreatorName + " is not null");

            return this;
        }

        public Criteria andCreatorNameIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.CreatorName +
                " is not null AND " + IProductModelDomainDAO.CreatorName +
                " <> ''");

            return this;
        }

        public Criteria andCreatorNameIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.CreatorName +
                " is null OR " + IProductModelDomainDAO.CreatorName + " = '')");

            return this;
        }

        public Criteria andCreatorNameEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " = ", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " <>", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " is null OR " +
                IProductModelDomainDAO.CreatorName + " <>", value, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " >", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " >=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThan(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " <", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.CreatorName + " <=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreatorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.CreatorName + " like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.CreatorName + " not like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.CreatorName + " in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.CreatorName + " not in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.CreatorName + " in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.CreatorName + " not in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreatorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.CreatorName + " between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.CreatorName + " not between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion(IProductModelDomainDAO.CreateTime + " is null");

            return this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion(IProductModelDomainDAO.CreateTime + " is not null");

            return this;
        }

        public Criteria andCreateTimeIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.CreateTime +
                " is not null AND " + IProductModelDomainDAO.CreateTime +
                " <> ''");

            return this;
        }

        public Criteria andCreateTimeIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.CreateTime +
                " is null OR " + IProductModelDomainDAO.CreateTime + " = '')");

            return this;
        }

        public Criteria andCreateTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " = ",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " <>",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                " is null OR " + IProductModelDomainDAO.CreateTime + " <>",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " >",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " >=",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " <",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime + " <=",
                value, "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.CreateTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                    " in", values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                    " not in", values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                    " in", Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                    " not in", Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.CreateTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                " between", value1, value2, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelDomainDAO.CreateTime +
                " not between", value1, value2, "createTime");

            return this;
        }

        public Criteria andLastModifierNameIsNull() {
            addCriterion(IProductModelDomainDAO.LastModifierName + " is null");

            return this;
        }

        public Criteria andLastModifierNameIsNotNull() {
            addCriterion(IProductModelDomainDAO.LastModifierName +
                " is not null");

            return this;
        }

        public Criteria andLastModifierNameIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.LastModifierName +
                " is not null AND " + IProductModelDomainDAO.LastModifierName +
                " <> ''");

            return this;
        }

        public Criteria andLastModifierNameIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.LastModifierName +
                " is null OR " + IProductModelDomainDAO.LastModifierName +
                " = '')");

            return this;
        }

        public Criteria andLastModifierNameEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " = ",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameNotEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " <>",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName +
                " is null OR " + IProductModelDomainDAO.LastModifierName +
                " <>", value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameGreaterThan(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " >", value,
                "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " >=",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLessThan(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " <", value,
                "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " <=",
                value, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifierName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifierNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.LastModifierName + " like",
                buffer.toString(), "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelDomainDAO.LastModifierName + " not like",
                buffer.toString(), "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameIn(List<String> values) {
            if (values.size() == 1) {
                return andLastModifierNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.LastModifierName + " in",
                    values, "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andLastModifierNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.LastModifierName +
                    " not in", values, "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameIn(String[] values) {
            if (values.length == 1) {
                return andLastModifierNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.LastModifierName + " in",
                    Arrays.asList(values), "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameNotIn(String[] values) {
            if (values.length == 1) {
                return andLastModifierNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.LastModifierName +
                    " not in", Arrays.asList(values), "lastModifierName");

                return this;
            }
        }

        public Criteria andLastModifierNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifierNameBetween(String value1, String value2) {
            addCriterion(IProductModelDomainDAO.LastModifierName + " between",
                value1, value2, "lastModifierName");

            return this;
        }

        public Criteria andLastModifierNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelDomainDAO.LastModifierName +
                " not between", value1, value2, "lastModifierName");

            return this;
        }

        public Criteria andLastModifyTimeIsNull() {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " is null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotNull() {
            addCriterion(IProductModelDomainDAO.LastModifyTime +
                " is not null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.LastModifyTime +
                " is not null AND " + IProductModelDomainDAO.LastModifyTime +
                " <> ''");

            return this;
        }

        public Criteria andLastModifyTimeIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.LastModifyTime +
                " is null OR " + IProductModelDomainDAO.LastModifyTime +
                " = '')");

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " = ", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " <>", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToOrIsNull(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " is null OR " + IProductModelDomainDAO.LastModifyTime + " <>",
                value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " >", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " >=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " <", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " <=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.LastModifyTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                    " in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                    " not in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                    " in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                    " not in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.LastModifyTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelDomainDAO.LastModifyTime +
                " not between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andSubmitterIdIsNull() {
            addCriterion(IProductModelDomainDAO.SubmitterId + " is null");

            return this;
        }

        public Criteria andSubmitterIdIsNotNull() {
            addCriterion(IProductModelDomainDAO.SubmitterId + " is not null");

            return this;
        }

        public Criteria andSubmitterIdIsNotEmpty() {
            addCriterion(IProductModelDomainDAO.SubmitterId +
                " is not null AND " + IProductModelDomainDAO.SubmitterId +
                " <> ''");

            return this;
        }

        public Criteria andSubmitterIdIsEmpty() {
            addCriterion("(" + IProductModelDomainDAO.SubmitterId +
                " is null OR " + IProductModelDomainDAO.SubmitterId + " = '')");

            return this;
        }

        public Criteria andSubmitterIdEqualTo(long value) {
            return andSubmitterIdEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " = ", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdNotEqualTo(long value) {
            return andSubmitterIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " <>", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotEqualToOrIsNull(long value) {
            return andSubmitterIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andSubmitterIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " is null OR " +
                IProductModelDomainDAO.SubmitterId + " <>", value, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdGreaterThan(long value) {
            return andSubmitterIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andSubmitterIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " >", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(long value) {
            return andSubmitterIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " >=", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdLessThan(long value) {
            return andSubmitterIdLessThan(Long.valueOf(value));
        }

        public Criteria andSubmitterIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " <", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(long value) {
            return andSubmitterIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " <=", value,
                "submitterId");

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelDomainDAO.SubmitterId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitterIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdIn(long[] values) {
            if (values.length == 1) {
                return andSubmitterIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(long[] values) {
            if (values.length == 1) {
                return andSubmitterIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " not in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitterIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitterIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " not in",
                    values, "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitterIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " in",
                    Arrays.asList(values), "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitterIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelDomainDAO.SubmitterId + " not in",
                    Arrays.asList(values), "submitterId");

                return this;
            }
        }

        public Criteria andSubmitterIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitterIdBetween(long value1, long value2) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " not between",
                value1, value2, "submitterId");

            return this;
        }

        public Criteria andSubmitterIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelDomainDAO.SubmitterId + " not between",
                value1, value2, "submitterId");

            return this;
        }
    }
}
